Some embodiments of this invention concern the preparation of magnified images for presentation on a computer display, where textual information present in the magnified image has superior contrast and improved letter shapes, and is generally more legible. Other embodiments are also described.
Computer displays are commonplace, and are used to present a wide range of textual and graphical information. The active portion of a display is typically rectangular and substantially planar. An array of colored spots, or pixels (for “picture elements”), is usually used to present the data. A process known as rasterization is performed to convert data to be displayed from its native format into an appropriate array of pixels to be included on the display. The native format may be, for example, endpoints of line segments, parameterized curves, and text encoded according to a standard such as ASCII or Unicode. In accordance with common software engineering practice, the term “pixel” will be used herein to refer to both the colored spot visible on a display screen and the representation in computer memory of data which, when operated on by the appropriate combination of hardware and software, will cause the colored spot to appear on a display screen.
Pixels on a display can often be displayed in varying color or brightness, but cannot be displaced from the points of the array These points are regularly spaced in X and Y directions at an interval known as the display's resolution. Resolutions are often measured in dots per inch, or DPI. Ordinary display screens generally have a resolution between a few tens and a few hundreds of dots per inch. Screens intended for viewing from a greater distance may have pixels that are physically larger, but at the intended viewing distance, the larger pixels may subtend a similar visual angle as the smaller pixels of an ordinary screen (when viewed from a shorter distance). Large and small screens, viewed from the intended distance, can therefore provide an overall similar impression for the viewer.
Because pixels are at fixed locations on the screen, it is often impossible to rasterize a line or curve in such a way that pixels lying precisely on the intended path can be selected for activation. When no pixel lies exactly on the path, one or more of the nearest pixels are generally selected for activation during rasterization. The selected pixel may be set to a different color or brightness to improve the overall appearance of the rasterized path; this technique is known as anti-aliasing. However, the selection of pixels that are off the true path results in a rasterized image that contains errors and distortions. Since pixels are usually quite small, the errors are also negligible in most cases, but they can become important in some circumstances.
Paths with features that are smaller than a single pixel, or complicated features that must be rasterized and represented by only a few pixels, are especially susceptible to distortion during rasterization. Display of text data presents particular problems in this regard: characters are often displayed at a height of only ten or twelve pixels, and many letters have small features that are very important in helping a reader to distinguish similar shapes. (Consider, for example, the differences between the letters O and Q and the numeral 0.) Various techniques have been developed to improve readability of text presented at modest sizes, since the alternate approach of simply making the text larger has the detriment of reducing the amount of information that can be presented simultaneously on a screen.
Currently, most text presented on display screens is drawn using either a bitmap font or an outline font. A bitmap font is a collection of characters pre-rasterized at a height of a particular number of pixels; the bitmaps are often carefully tuned to be legible at that size. Unfortunately, since screen resolutions and therefore pixel sizes vary over a moderate range, text presented using bitmap characters will also vary in size. This is unacceptable in many common situations, such as in a “what-you-see-is-what-you-get” (WYSIWYG) text editor. Furthermore, bitmap fonts do not scale smoothly at other than integral magnifications (that is, magnifications by a factor of a whole number such as 2, 3 or 4), and even at integral magnifications, the characters often become difficult to read.
Outline fonts, by contrast, contain characters described as collections of lines and curves. The collections are represented in measurement-independent coordinates, so they can be scaled smoothly to any desired size. After scaling, the characters can be rasterized and displayed. This method works well for all but very small text sizes, and is in wide use.
Information to be presented on a computer display is often prepared by an application program. Information from a number of different applications is commonly presented simultaneously on a single display. In a common arrangement, each application is unaware of the others, and simply transmits its own display requests to one or more separate software tasks that receive all the requests and manage allocation of portions of the physical display so that each application can present some of its information. In this common arrangement, the applications convert their high-level information into requests to draw on the screen, but are unconcerned with the conversion of the requests into pixels on the display, while the display manager receives a sequence of drawing requests and causes the appropriate pixels to be activated but is unaware of the high-level information that the drawing requests represent.
If it is desired to magnify the image displayed on a screen, as done by conventional screen-magnifier software tools used by the visually impaired, each displayed pixel is magnified and then a portion of the magnified image is re-sampled to obtain new pixel values for display. Unfortunately, this approach magnifies any errors that occurred during the rasterization of the original drawing requests, and the particular susceptibility of text to rasterization errors may cause magnified text to become ugly and even illegible.